<?php
// Recogemos los datos del formulario
$tourId = $_POST["tourId"];
$genericStartDay = $_POST["genericStartDay"];
$genericStartMonth = $_POST["genericStartMonth"];
$name = $_POST["name"];
$lastName = $_POST["lastName"];
$nif = $_POST["nif"];
$age = $_POST["age"];
$email = $_POST["email"];
$email2 = $_POST["email2"];
$address = $_POST["address"];
$town = $_POST["town"];
$zipCode = $_POST["zipCode"];
$province = $_POST["province"];
$country = $_POST["country"];
$phone1 = $_POST["phone1"];
$phone2 = $_POST["phone2"];
$observations = $_POST["observations"];
$captcha = $_POST["captcha"];
$numCompanions = $_POST["numCompanions"];
$companions = $_POST["companions"];

// Validamos los datos
$errors = array();
if (empty($tourId) || empty($name) || empty($lastName) || empty($nif) || empty($age) || empty($email) || empty($email2) || empty($country)) {
	$errors[] = $content->langmsg["mustfilloutallmandatoryfields"];
}
if ($email2 != $email) {
	$errors[] = "Comprueba que has introducido tu e-mail correctamente.";
}
if (!preg_match("/^([a-z0-9])+([\.a-z0-9_\-])*@([a-z0-9_\-])+(\.[a-z0-9_\-]+)*\.([a-z]{2,4})$/", $email)) {
	$errors[] = "Parece que el e-mail que has introducido no es válido.";
}
/*
if (empty($tourId)) $errors[] = $content->langmsg["emptytour"];
if (empty($name)) $errors[] = $content->langmsg["emptyname"];
if (empty($lastName)) $errors[] = $content->langmsg["emptylastname"];
if (empty($nif)) $errors[] = $content->langmsg["emptynif"];
if (empty($age)) $errors[] = $content->langmsg["emptyage"];
if (empty($email)) $errors[] = $content->langmsg["emptyemail"];
if (empty($address)) $errors[] = $content->langmsg["emptyaddress"];
if (empty($town)) $errors[] = $content->langmsg["emptytown"];
if (empty($zipCode)) $errors[] = $content->langmsg["emptyzipcode"];
if (empty($province)) $errors[] = $content->langmsg["emptyprovince"];
if (empty($country)) $errors[] = $content->langmsg["emptycountry"];
if (empty($phone1)) $errors[] = $content->langmsg["emptyphone1"];
*/
if ($captcha != $_SESSION["captcha"]) {
	$errors[] = $content->langmsg["invalidcaptcha"];
}
if (count($errors)) {
	echo "ko|".implode("<br />", $errors);
	exit;
}

// Tratamos la fecha de salida
if ($tourId == 21 || $tourId == 22) {
	$startDate = "";
} else {
	$startDate = date("Y")."-".$genericStartMonth."-".$genericStartDay;
}

// Guardamos la reserva en la base de datos
$created = date("Y-m-d H:i:s");
$query = "INSERT INTO reservations (tour_id, created, start_date, name, last_name, nif, age, email, ".
		 "address, town, zip_code, province, country, phone1, phone2, num_companions, companions, ".
		 "observations) VALUES ('$tourId', '$created', '$startDate', '".$db->escapeString(utf8_decode($name))."', ".
		 "'".$db->escapeString(utf8_decode($lastName))."', '".$db->escapeString(utf8_decode($nif))."', ".
		 "'".$db->escapeString(utf8_decode($age))."', '".$db->escapeString(utf8_decode($email))."', ".
		 "'".$db->escapeString(utf8_decode($address))."', '".$db->escapeString(utf8_decode($town))."', ".
		 "'".$db->escapeString(utf8_decode($zipCode))."', '".$db->escapeString(utf8_decode($province))."', ".
		 "'".$db->escapeString(utf8_decode($country))."', '".$db->escapeString(utf8_decode($phone1))."', ".
		 "'".$db->escapeString(utf8_decode($phone2))."', '$numCompanions', ".
		 "'".$db->escapeString(utf8_decode($companions))."', '".$db->escapeString(utf8_decode($observations))."')";
if (!$db->runQuery($query)) {
	$errorCode = Utils::generateRandomCode();
	Utils::writeLog("mysql", array($errorCode, $db->getErrorDescription()." (".$db->getErrorCode().")", $query));
	echo "ko|".$content->langmsg["reservationnotsent"]." ".$errorCode;
	exit;
}

// Recogemos el id de la reserva
$reservationId = $db->getInsertId();

// Tratamos los acompañantes para que sea más legible en el correo
$companionsExtended = "";
if ($numCompanions > 0) {
	$companionsExtended .= "<ol>";
	$arrCompanions = explode("|", $companions);
	foreach ($arrCompanions as $companion) {
		if (!empty($companion)) {
			list($cName, $cLastName, $cNif, $cAge) = explode("#", $companion);
			$companionsExtended .= "<li>Nombre: $cName<br />Apellidos: $cLastName<br />NIF/Pasaporte: $cNif<br />Edad: $cAge</li>";
		}
	}
	$companionsExtended .= "</ol>";
} else {
	$companionsExtended .= "ninguno";
}

// Enviamos el mail a Mundiplus
$headers = "From: Mundiplus <info@mundiplus.com>\r\n".
		   "MIME-Version: 1.0\r\n".
		   "Content-type: text/html; charset=utf-8\r\n";
$subject = "Nueva reserva (ID: $reservationId)";
$message = "<b>".$subject."</b><br /><br />".
		   "Camino: ".$content->langmsg["tour".$tourId]."<br />".
		   "Fecha y hora de la reserva: $created<br />".
		   "Fecha de salida: $startDate<br />".
		   "Nombre: $name<br />".
		   "Apellidos: $lastName<br />".
		   "NIF/Pasaporte: $nif<br />".
		   "Edad: $age<br />".
		   "E-mail: $email<br />".
		   "Dirección: $address<br />".
		   "Población: $town<br />".
		   "Código postal: $zipCode<br />".
		   "Provincia: $province<br />".
		   "País: $country<br />".
		   "Teléfono 1: $phone1<br />".
		   "Teléfono 2: $phone2<br />".
		   "Nº de acompañantes: $numCompanions<br />".
		   "Observaciones: $observations<br /><br />".
		   "Acompañantes: $companionsExtended";
mail("reservas@mundiplus.com", $subject, $message, $headers);

// Enviamos el mail al usuario
$headers = "From: Mundiplus <info@mundiplus.com>\r\n".
		   "MIME-Version: 1.0\r\n".
		   "Content-type: text/html; charset=utf-8\r\n";
$subject = "Tu reserva (ID: $reservationId)";
$message = "<b>".$subject."</b><br />".
		   "Hemos recibido tu reserva correctamente. En breve nos pondremos en contacto contigo para concretar los detalles.<br /><br />".
		   "A continuación detallamos los datos de la reserva:<br />".
		   "Camino: ".$content->langmsg["tour".$tourId]."<br />".
		   "Fecha de salida: $startDate<br />".
		   "Nombre: $name<br />".
		   "Apellidos: $lastName<br />".
		   "NIF/Pasaporte: $nif<br />".
		   "Edad: $age<br />".
		   "E-mail: $email<br />".
		   "Dirección: $address<br />".
		   "Población: $town<br />".
		   "Código postal: $zipCode<br />".
		   "Provincia: $province<br />".
		   "País: $country<br />".
		   "Teléfono 1: $phone1<br />".
		   "Teléfono 2: $phone2<br />".
		   "Nº de acompañantes: $numCompanions<br />".
		   "Observaciones: $observations<br /><br />".
		   "Acompañantes: $companionsExtended<br />".
		   "Si algún dato no es correcto, ponte en contacto con nosotros a través de <a href=\"mailto:reservas@mundiplus.com\">reservas@mundiplus.com</a> o en los teléfonos <b>(+34) 91 153 73 87</b> y <b>(+34) 617 661 009</b>, y te atenderemos a la mayor brevedad posible.<br /><br />".
		   "Recibe un cordial saludo,<br />El equipo de Mundiplus";
mail($email, $subject, $message, $headers);

// Todo ha ido bien
echo "ok|".$content->langmsg["reservationsent"];
?>
